時間日期在計算機科學和日常生活中都非常重要。下面是一些時間日期的基本概念和相關信息:
這些是時間日期的一些基本概念和相關信息。在實際應用中,根據需要,您可以使用不同的工具和方法來處理日期和時間。
UTC(協調世界時)是一種全球性的標準時間,用於協調世界各地的時間。它是一個基於原子時鐘的時間標準,通常被視為世界上的參考時間。以下是有關UTC的一些重要信息:
UTC是全球性的時間標準,確保了全球範圍內的時間一致性。在許多情況下,特別是與跨時區的通信、科學實驗和計算機系統相關的應用中,UTC時間非常重要。
台灣位於UTC+8時區,也稱為台北標準時間(Taipei Standard Time,簡稱TST),或者又被稱為中華民國標準時間(ROC Standard Time),時區代號為「CST」。UTC+8表示台灣的時間比協調世界時(UTC)提前8小時,所以當UTC時間是中午12:00時,台灣的時間是晚上8:00時。台灣不遵循夏令時制度,所以在整年內都保持UTC+8時區。
datetime
模組是 Python 中用於處理日期和時間的標準庫模組。它提供了各種功能,允許您創建、操作和格式化日期時間物件。以下是 datetim
模組的主要功能和介紹:
datetime
模組定義了幾個重要的類別,包括 datetime.date
、datetime.time
和 datetime.datetime
。這些類別允許您分別表示日期、時間和日期時間。datetime
模組來創建日期時間物件,例如:from datetime import datetime
# 創建一個表示當前日期時間的物件
now = datetime.now()
# datetime.datetime(2023, 11, 14, 9, 57, 23, 172582)
datetime
模組允許您將日期時間物件格式化為字串,或將字串解析為日期時間物件。您可以使用strftime()
方法將日期時間格式化為字串。strptime()
方法將字串解析為日期時間物件。from datetime import datetime
# 格式化日期時間為字串
now = datetime.now()
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
# 2023-11-14 09:57:55
# 解析字串為日期時間物件
date_string = "2023-11-10 15:30:00"
parsed_date = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
# datetime.datetime(2023, 11, 10, 15, 30)
from datetime import datetime, timedelta
# 計算未來某一天的日期
now = datetime.now()
# datetime.datetime(2023, 11, 14, 9, 58, 42, 120398)
future_date = now + timedelta(days=7)
# datetime.datetime(2023, 11, 21, 9, 58, 42, 120398)
datetime
模組允許您處理時區相關的日期時間操作。from datetime import datetime
# 獲取當前UTC時間
utc_now = datetime.utcnow()
datetime.datetime(2023, 11, 14, 1, 59, 18, 337317)
# 印出UTC時間
print("當前UTC時間:", utc_now)
# 當前UTC時間: 2023-11-14 01:59:18.337317
from datetime import datetime
# 比較日期時間物件
date1 = datetime(2023, 11, 10)
date2 = datetime(2023, 11, 15)
if date1 < date2:
print("date1 在 date2 之前")
datetime.now()
方法獲取當前的日期時間物件,以進行各種日期時間操作。from datetime import datetime
# 獲取當前日期時間
now = datetime.now()
總之,datetime
模組為 Python 提供了強大的日期時間處理能力,可以方便地進行日期時間的創建、格式化、運算和比較等操作。這些功能使它在許多應用中都非常有用,包括時間戳記記錄、日曆應用程式、數據分析等。
方法 | 描述 | 範例 |
---|---|---|
datetime.now() | 返回當前的日期和時間。 | now = datetime.now() |
datetime.today() | 返回當前日期和時間,等效於datetime.now()。 | today = datetime.today() |
datetime.strptime(date_string, format) | 解析字串為日期時間物件,並根據指定的格式進行解析。 | parsed_date = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S") |
datetime.strftime(format) | 格式化日期時間物件為字串,根據指定的格式進行格式化。 | formatted_date = now.strftime("%Y-%m-%d %H:%M:%S") |
datetime.date() | 返回日期部分。 | date_part = now.date() |
datetime.time() | 返回時間部分。 | time_part = now.time() |
datetime.year | 返回年份。 | year = now.year |
datetime.month | 返回月份。 | month = now.month |
datetime.day | 返回日期。 | day = now.day |
datetime.hour | 返回小時。 | hour = now.hour |
datetime.minute | 返回分鐘。 | minute = now.minute |
datetime.second | 返回秒數。 | second = now.second |
datetime.replace(year, month, day, hour, minute, second) | 創建一個新的日期時間物件,並用指定的值替換相應的部分。 | new_date = now.replace(year=2023, month=12) |
datetime.timedelta(days, seconds, microseconds, milliseconds, minutes, hours, weeks) | 創建一個時間差物件,表示指定的時間間隔。 | delta = timedelta(days=3, hours=2) |
datetime + timedelta | 將時間差添加到日期時間物件,生成新的日期時間物件。 | new_date = datetime.now() + timedelta(days=2) |
datetime - timedelta | 從日期時間物件減去時間差,生成新的日期時間物件。 | new_date = datetime.now() - timedelta(days=2) |
timedelta
(時間差異)是 Python 中用於表示時間間隔的類別。它允許您執行日期和時間的數學運算,例如加法、減法和比較,用於處理時間間隔非常方便。以下是有關 timedelta
的重要資訊:
timedelta
物件:
timedelta
是 datetime
模組中的一個類別,用於表示時間間隔。timedelta
物件表示一段時間的長度,例如幾天、幾小時、幾分鐘或幾秒。timedelta
物件:
timedelta
建構函式來創建 timedelta
物件,並指定要表示的時間間隔的各個組成部分,如天、小時、分鐘、秒等。from datetime import timedelta
# 創建一個表示3天的時間間隔
delta = timedelta(days=3)
# datetime.timedelta(days=3)
# 創建一個表示2小時30分鐘的時間間隔
delta2 = timedelta(hours=2, minutes=30)
# datetime.timedelta(seconds=9000)
timedelta
物件執行各種數學運算,如加法和減法,以計算時間間隔的和或差。from datetime import timedelta
# 創建兩個時間間隔物件
delta1 = timedelta(days=3)
delta2 = timedelta(days=2)
# 計算時間間隔的和
result = delta1 + delta2
# datetime.timedelta(days=5)
# 計算時間間隔的差
result2 = delta1 - delta2
# datetime.timedelta(days=1)
timedelta
物件,以判斷哪個時間間隔較長或較短。pythonCopy code
from datetime import timedelta
delta1 = timedelta(days=3)
delta2 = timedelta(days=2)
if delta1 > delta2:
print("delta1 較長")
timedelta
物件格式化為字串,以便以易讀的方式顯示時間間隔。pythonCopy code
from datetime import timedelta
delta = timedelta(days=3, hours=2, minutes=30)
formatted = str(delta)
# '3 days, 2:30:00
timedelta
物件非常實用,可用於各種需要處理時間間隔的情況,例如計算日期之間的差異、計算任務的執行時間等。它是 Python 中處理時間間隔的標準工具。
參數 | 說明 | 範例 |
---|---|---|
days | 天數間隔 | timedelta(days=3) |
seconds | 秒數間隔 | timedelta(seconds=3600) |
microseconds | 微秒數間隔 | timedelta(microseconds=500000) |
milliseconds | 毫秒數間隔 | timedelta(milliseconds=2000) |
minutes | 分鐘數間隔 | timedelta(minutes=45) |
hours | 小時數間隔 | timedelta(hours=2) |
weeks | 週數間隔 | timedelta(weeks=2) |
calendar
模組是 Python 中的標準庫之一,用於處理日期和時間相關的操作。它提供了各種與日曆和日期計算相關的函數和類別,允許您執行各種日期和時間操作。以下是有關 calendar
模組的一些介紹:
calendar
模組:
calendar
模組,首先需要匯入它:import calendar
calendar
模組允許您獲取各種有關日曆的信息,如某年某月的月曆、某年的年曆等。calendar.month()
函數來獲取指定年份和月份的月曆:import calendar
year = 2023
month = 11
cal = calendar.month(year, month)
print(cal)
![https://ithelp.ithome.com.tw/upload/images/20231114/20072651PswFhi4kl2.png](https://ithelp.ithome.com.tw/upload/images/20231114/20072651PswFhi4kl2.png)
這將輸出指定年份和月份的月曆。
calendar
模組還提供了用於處理日期範圍和日期計算的工具函數,如 calendar.monthrange()
和 calendar.weekday()
等。calendar.monthrange()
函數用於獲取指定年份和月份的第一天是星期幾以及該月的天數:import calendar
year = 2023
month = 11
first_weekday, num_days = calendar.monthrange(year, month)
# first_weekday=2, num_days=30
這將返回第一天是星期幾(0 表示星期一,6 表示星期日)以及該月的天數。
calendar
模組還定義了一些與日期和星期相關的常數,如星期一到星期日的名稱和月份的名稱等。calendar.SUNDAY
、calendar.MONDAY
等常數來表示星期幾。calendar
模組在處理日期和時間方面是非常有用的工具,特別是在生成日曆、計算日期範圍和執行日期計算等任務時。通過結合使用 calendar
模組的函數和常數,您可以輕鬆執行各種日期和時間操作。
以下是一個有趣的日期應用小遊戲,稱為「生日星期猜猜樂」。玩家需要猜測特定日期的星期,並檢查答案的正確性。
from datetime import datetime
import random
# 產生隨機的日期
def generate_random_date():
year = random.randint(1950, 2023)
month = random.randint(1, 12)
day = random.randint(1, 28) # 簡化起見,假設最大為28日
return datetime(year, month, day)
# 獲取日期的星期
def get_weekday(date):
weekdays = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
return weekdays[date.weekday()]
# 主要遊戲循環
def birthday_game():
print("歡迎來到生日星期猜猜樂!")
correct_answers = 0
total_questions = 5 # 您可以根據需要更改問題數量
for _ in range(total_questions):
random_date = generate_random_date()
print(f"請猜測 {random_date.year}年{random_date.month}月{random_date.day}日是星期幾:")
user_guess = input("輸入星期幾(例:星期一):")
correct_weekday = get_weekday(random_date)
if user_guess == correct_weekday:
print("正確答案!\n")
correct_answers += 1
else:
print(f"錯誤答案。正確答案是 {correct_weekday}。\n")
print(f"您在 {total_questions} 個問題中答對了 {correct_answers} 個問題!")
if __name__ == "__main__":
birthday_game()
遊戲會隨機生成日期,然後要求玩家猜測該日期是星期幾。玩家將在幾個問題中回答正確的次數,最終會得到一個分數。您可以根據需要自定義遊戲的難度和問題數量。這個小遊戲可以讓您玩得開心,同時也提供了練習猜測星期的機會。
日期時間在平常資料處理很常使用到,內建提供的 Datetime、calendar 模組可以處理大部分的問題,在撰寫系統時,有時候時區也是很大的一個雷,尤其是你的系統是多國在使用,就需要更特別注意。
分享所學貢獻社會
[Python教學]開發工具介紹
[開發工具] Google Colab 介紹
[Python教學] 資料型態
[Python教學] if判斷式
[Python教學] List 清單 和 Tuple元組
[Python教學] for 和 while 迴圈
[Python教學] Dictionary 字典 和 Set 集合
[Python教學] Function函示
[Python教學] Class 類別
[Python教學] 例外處理
[Python教學] 檔案存取
[Python教學] 實作密碼產生器
[Python教學] 日期時間
最後最後有一件小小的請求,請大家幫我填寫一下問卷,
讓我們知道你想上怎麼樣課程,感激不盡。
問卷這邊
Facebook 粉絲頁 - TechMasters 工程師養成記